This application is generally directed to quality of service management and, more particularly, to techniques for storage controller quality of service management.
In enterprise computing environments, there are often two completely different sets of performance metrics in operation between an external storage controller and application. At the storage controller level, performance can only be automatically measured in terms of input and output (IO) operations per second. However, at the application level users and administrators are concerned with a different but related set of metrics. For example, a database application may be concerned about database reads and writes per second.
These two different views on performance make managing the relationship between storage performance and application performance difficult and often utilize different sets of skills and people to measure performance. This inevitably leads to generalized performance requirements at the storage level. As such, setting a level of storage performance is always a compromise. In addition, some quality of service (QoS) implementations rely on the concept of providing performance to whatever level an object involved requires, at the expense of other objects. In these types of QoS implementations, an application under heavy load may negatively impact performance of other storage subsystem users.